import api from "./api"
import { update } from "immutable";
import { requstPromise } from '../util/utils'

// BehalfController：代购
const BehalfController = {
    // 生成杂志代购订单
    async generateBehalfOrder(option) { return await api.post('/behalf/generateBehalfOrder', option) },
    // 获取杂志详情
    async get(option) { return await api.post(`/behalf/get`, option) },
    // 查询代购订单详情
    async getOrder(option) { return await api.post('/behalf/order/get', option) },
    // 查询代购订单
    async orderList(option) { return await api.post('/behalf/order/list', option) },
    // 获取书籍/ 杂志代购信息列表
    async productList(option) { return await api.post(`/behalf/product/list?${option}`, option) },
    // 生成中国书籍代购订单
    async addOrder(option) { return await api.post('/behalf/ps/book/order/add', option) },
}

// CartController : 购物车管理
const CartController = {
    // 添加商品到购物车
    async add(option) { return await api.post('/cart/add', option) },
    // 清空购物车
    async clear(option) { return await api.post('/cart/clear', option) },
    // 删除购物车中的某个商品
    async delete(options) {
        const { pid, ...option } = options
        return await api.post(`/cart/delete?pid=${pid}`, option)
    },
    // 删除购物车中的多个商品
    async deleteAll(option) { return await api.post('/cart/delete/all', option) },
    // 获取某个会员的购物车列表
    async list(option) { return await api.get('/cart/list', option) },
    // 获取某个会员的购物车列表,包括促销信息
    async promotion(option) { return await api.get('/cart/list/promotion', option) },
    // 修改购物车中某个商品是否选中状态
    async updateChecked(option) { return await api.post('/cart/update/checked', option) },
    // 修改购物车中某个商品的数据
    async updateQuantity(option) { return await api.post('/cart/update/quantity', option) },
}

// GoodsController : 物品列表
const GoodsController = {
    // 商品属性
    async attr(option) { return await api.get('/goods/attr', option) },
    // 根据顶级分类查询商品
    async goodsCategoryList(option) { return await api.get('/goods/category/search/list', option) },
    // 商品详情
    async details(option) { return await api.get('/goods/details', option) },
    // 每日特价
    async discount(option) { return await api.get('/goods/discount', option) },
    // 查询商品(搜索 A01-0001)
    async list(option) { return await api.get('/goods/list', option) },
    // 新品上市
    async goodsNew(option) { return await api.get('/goods/new', option) },
    // 推荐商品
    async recommend(option) { return await api.get('/goods/recommend', option) },
    // 关键词搜索
    async search(option) { return await api.get('/goods/search', option) },
}

// HomeController : 商品分类管理
const HomeController = {
    // 分页查询广告
    async billboard(option) { return await api.get('/home/billboard/list', option) },
    // 查询所有分类及子分类
    async category(option) { return await api.get('/home/category/list', option) },
    // 获取手机国际编码列表
    async globalCodeList(option) { return await api.get('/home/global/code/list', option) },
}

// MemberController : 会员登录注册管理
const MemberController = {
    // 国家所有州列表
    async country(options) {
        const { id, ...option } = options
        return await api.post('/con/country/' + id, { ...option })
    },
    // 结算页核对订单
    async checkOrders(option) { return await api.get('/member/check/orders', option) },
    // 忘记密码
    async forgetPassword(option) { return await api.post(`/member/forgetPassword?telephone=${option.telephone}&authCode=${option.authCode}&password=${option.password}`, option) },
    // 获取手机验证码
    async authCode(option) { return await api.get('/member/get/mobile/authCode', option) },
    // 登录
    async login(option) { return await api.post('/api/login/mobile', option) },
    // 修改个人信息
    async updateMember(option) { return await api.post('/member/updateMember', option) },
    // 会员订单概览
    async dashboard(option) { return await api.post('/member/order/dashboard', option) },
    // 注册
    async register(option) { return await api.post('/member/register', option) },
    // 获取账号注册手机验证码
    async registerAuthCode(option) { return await api.get('/member/register/mobile/authCode', option) },
    // 修改密码
    async updatePassword(option) { return await api.post('/member/updatePassword', option) },
    // 用户基本信息
    async userInfo(option) { return await api.get('/member/user/info', option) },
}

// MemberReceiveAddressController : 会员收货地址管理
const MemberReceiveAddressController = {
    // 添加收货地址
    async add(option) { return await api.post('/member/address/add', option) },
    // 删除收货地址
    async delete(options) {
        const { id, ...option } = options
        return await api.post('/member/address/delete/' + id, option)
    },
    // 显示所有收货地址
    async default(options) {
        const { id, ...option } = options
        return await api.get('/member/address/default/' + id, option)
    },
    // 显示所有收货地址
    async list(option) { return await api.get('/member/address/list', option) },
    // 修改收货地址
    async update(options) {
        const { id, ...option } = options
        return await api.post('/member/address/update/' + id, option)
    },
    // 显示所有收货地址
    async address(options) {
        const { id, ...option } = options
        return await api.get('/member/address/' + id, option)
    },
}


// OmsPortalOrderReturnApplyController : 申请退货管理
const OmsPortalOrderReturnApplyController = {
    // 申请退货
    async create(option) { return await api.post('/returnApply/create', option) }
}

// PortalOrderController : 订单管理
const PortalOrderController = {
    // 取消单个超时订单
    async cancelOrder(option) { return await api.post('/order/cancel', option) },
    // 自动取消超时订单
    async cancelTimeOutOrder(option) { return await api.post('/order/cancelTimeOutOrder', option) },
    // 通过id获取订单
    async detail(option) { return await api.get('/order/detail', option) },
    // 根据购物车信息生成确认单信息
    async generateConfirmOrder(option) { return await api.post('/order/generateConfirmOrder', option) },
    // 根据购物车信息生成订单
    async generateOrder(option) { return await api.post('/order/generateOrder', option) },
    // 查询订单
    async list(option) { return await api.get('/order/list', option) },
    // 支付成功的回调
    async notify(option) { return await api.post('/order/pay/sync/notify', option) },
    // 支付成功的回调
    async paySuccess(option) { return await api.post('/order/paySuccess', option) },
    // 一键购买生成确认单信息
    async promptlyConfirmOrder(option) { return await api.post('/order/promptlyConfirmOrder', option) },
    // 支付成功的回调
    async pay(option) { return await api.post('/order/start/pay', option) },
}

// PurchaseController : 预购
const PurchaseController = {
    // 添加商品到预购
    async addPurchase(option) { return await api.post('/purchase/add', option) },
}

// ValidateCodeController : 验证码管理
const ValidateCodeController = {
    // 获取验证码
    async getAuthCode(option) { return await api.get('/captcha/getAuthCode', option) },
    // 获取图片验证码
    async image(option) { return await api.get('/captcha/image', option) },
}

export default {
    BehalfController,
    CartController,
    GoodsController,
    HomeController,
    MemberController,
    MemberReceiveAddressController,
    OmsPortalOrderReturnApplyController,
    PortalOrderController,
    PurchaseController,
    ValidateCodeController,
}
